package com.example.store.mapper;

import com.example.store.entity.Address;
import org.apache.ibatis.annotations.Mapper;

import java.util.Date;
import java.util.List;

/**
 * 收获地址持久层接口
 */
@Mapper
public interface AddressMapper {

    /**
     * 插入用户的收获地址
     * @param address 收获地址数据
     * @return 受影响的行数
     */
    Integer insertAddress(Address address);

    /**
     * 根据用户的id统计收货地址
     * @param uid 用户的id
     * @return 当前用户的收获地址总数
     */
    Integer countByUid(Integer uid);

    /**
     * 根据用户uid查询用户收获地址
     * @param uid 用户uid
     * @return 返回一个收获地址链表
     */
    List<Address> findByUid(Integer uid);

    /**
     *  根据aid查询收获地址是否存在
     * @param aid aid
     * @return 收获地址，没有数据则返回null
     */
    Address findByAid(Integer aid);

    /**
     * 根据用户uid把所有地址设置为非默认
     * @param uid 用户uid
     * @return 返回影响行数
     */
    Integer updateNonDefault(Integer uid);

    /**
     * 根据aid把第地址修改为默认收获地址
     * @param aid aid
     * @param modifiedUser 修改人
     * @param modifiedTime 修改时间
     * @return 影响行数
     */
    Integer updateDefaultByAid(Integer aid, String modifiedUser, Date modifiedTime);

    /**
     * 根据收获地址aid删除收货地址
     * @param aid 收获地址aid
     * @return 影响行数
     */
    Integer deleteByAid(Integer aid);

    /**
     * 根据用户uid查询出最新时间修改的收获地址数据
     * @param uid
     * @return
     */
    Address findLastModified(Integer uid);

    /**
     * 根据收获地址修改时间设置默认收获地址
     * @return 影响行数
     */
    /*Integer updateDefaultOne(Integer uid);*/



}
